package collection;

import java.util.ArrayList;
import java.util.List;

/**
 * List获取子集操作：subList()
 * List集合的子集：subList(int start,int end)含头不含尾
 *
 * */
public class ListDemo3 {
    public static void main(String[] args) {//创建一个List集合
        List<Integer> list = new ArrayList<>();//添加元素
        for (int i = 0; i < 10; i++) {///添加元素
            list.add(i * 10);//添加元素
        }
        System.out.println("list:" + list);//[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
        List<Integer> sublist = list.subList(3, 8);//获取下标3到7的子集  要头不要尾
        System.out.println("sublist;" + sublist);//[30, 40, 50, 60, 70]
        //将子集每个元素扩大10倍
        for(int i=0;i<sublist.size();i++){//遍历子集
            sublist.set(i,sublist.get(i)*10);//修改子集的元素
        }
        System.out.println("sublist:"+sublist);//[300, 400, 500, 600, 700]
        System.out.println("list:"+list); //[0, 10, 20, 300, 400, 500, 600, 700, 80, 90]     sublist和list共用一块内存
        list.set(3,1000);//修改list的元素  将集合对应的下标为3的元素修改为1000
        System.out.println("list:"+list);//[0, 10, 20, 1000, 400, 500, 600, 700, 80, 90]
        System.out.println("sublist:"+sublist);//[1000, 400, 500, 600, 700]
        list.remove(0);//删除list数组下标为0的元素
        System.out.println("list;"+list);//[10, 20, 1000, 400, 500, 600, 700, 80, 90]
        //原集合长度改变后，子集将不能再进行任何操作了，若操作则发生异常
       // System.out.println("sublist:"+sublist);   运行以上代码会报错




    }
}
